package com.fjl.array.leetcode283;

/**
 * @Description
 * @Author: 01195
 * @Date: 2025/2/28 9:50
 */
/*
给你输入一个数组 nums，请你原地修改，将数组中的所有值为 0 的元素移到数组末尾 同时保持非零元素的相对顺序
比如说给你输入 nums = [0,1,4,0,2]，你的算法没有返回值，但是会把 nums 数组原地修改成 [1,4,2,0,0]。
 */
public class MoveZeroesClass {
    public void moveZeroes(int[] nums) {
        int p = removeElement(nums, 0);
        for (int i = p; i < nums.length; i++) {
            nums[i] = 0;
        }
    }
    private int removeElement(int[] nums, int val){
        if (nums == null || nums.length == 0) {
            return 0;
        }
        int slow = 0;
        for (int fast = 0; fast < nums.length; fast++) {
            if (nums[fast] != val) {
                nums[slow] = nums[fast];
                slow++;
            }
        }
        return slow;
    }
}
